package com.inei.view;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
import com.inei.R;
import com.inei.controller.RespuestaCensoWebController;
import com.inei.model.entity.RespuestaCensoWeb;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TimePicker;
import android.widget.Toast;

public class Evaluacion_III_Detalle_Activity extends Activity {

	// variables de componentes
	private EditText etDetFecha, etDetHI, etDetHT, etDetMotivo;
	private RadioButton rbDetSi, rbDetNo;

	// variables
	private RespuestaCensoWebController con;
	private RespuestaCensoWeb obj;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.evaluacion_iii_item_detalle);

		con = new RespuestaCensoWebController(
				Evaluacion_III_Detalle_Activity.this);

		IniciarComponentes();

		etDetFecha.setFocusable(false);
		etDetFecha.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				EditText et = (EditText) v;
				AbrirCalendar(et.getText().toString(), et, 1, null);
			}
		});

		etDetHI.setFocusable(false);
		etDetHI.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				EditText et = (EditText) v;
				AbrirTime(et.getText().toString(), et, 0, "");
			}
		});

		etDetHT.setFocusable(false);
		etDetHT.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				EditText et = (EditText) v;
				AbrirTime(et.getText().toString(), et, 0, "");
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.menu_evaluacion_iii_detalle, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case R.id.mnAceptar:
			Aceptar();
			break;
		case R.id.mnCancelar:
			Intent ir_evaluacion_iii = new Intent(this,
					Evaluacion_III_Activity.class);
			Bundle datos = getIntent().getExtras();
			datos.putInt("rpta_web_id", 0);
			ir_evaluacion_iii.putExtras(datos);
			startActivity(ir_evaluacion_iii);
			finish();
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void onBackPressed() {
		Intent ir_evaluacion_iii = new Intent(this,
				Evaluacion_III_Activity.class);
		Bundle datos = getIntent().getExtras();
		datos.putInt("rpta_web_id", 0);
		ir_evaluacion_iii.putExtras(datos);
		startActivity(ir_evaluacion_iii);
		finish();
		super.onBackPressed();
	}

	private void IniciarComponentes() {
		etDetFecha = (EditText) findViewById(R.id.etDetFecha);
		etDetHI = (EditText) findViewById(R.id.etDetHI);
		etDetHT = (EditText) findViewById(R.id.etDetHT);
		etDetMotivo = (EditText) findViewById(R.id.etDetMotivo);

		rbDetSi = (RadioButton) findViewById(R.id.rbDetSi);
		rbDetNo = (RadioButton) findViewById(R.id.rbDetNo);

		CargarDatos();
	}

	private void CargarDatos() {
		obj = new RespuestaCensoWeb();
		obj.setRpta_web_id(getIntent().getExtras().getInt("rpta_web_id"));
		obj.setRespuesta_id(getIntent().getExtras().getInt("respuesta_id"));
		obj = con.RespuestaCensoWebBuscar(obj);

		if (obj != null) {
			if (obj.getW_1() != null) {
				if (Integer.parseInt(obj.getW_1()) == 1) {
					rbDetSi.setChecked(true);
				}
				if (Integer.parseInt(obj.getW_1()) == 2) {
					rbDetNo.setChecked(true);
				}
			}

			if (obj.getW_DIA() != null && obj.getW_MES() != null) {
				etDetFecha.setText(obj.getW_DIA() + "/" + obj.getW_MES());
			}

			if (obj.getW_IH() != null && obj.getW_IM() != null) {
				etDetHI.setText(obj.getW_IH() + ":" + obj.getW_IM());
			}

			if (obj.getW_FH() != null && obj.getW_FM() != null) {
				etDetHT.setText(obj.getW_FH() + ":" + obj.getW_FM());
			}

			etDetMotivo.setText(obj.getW_MOTI());
		}
	}

	private void Aceptar() {
		if (obj == null) {
			obj = new RespuestaCensoWeb();
			obj.setRespuesta_id(getIntent().getExtras().getInt("respuesta_id"));
		}

		obj.setW_1((rbDetSi.isChecked() ? 1 : (rbDetNo.isChecked() ? 2 : 0))
				+ "");

		if (etDetFecha.getText().toString().length() != 0) {
			String[] i1 = etDetFecha.getText().toString().split("/");
			obj.setW_DIA(i1[0]);
			obj.setW_MES(i1[1]);
		} else {
			obj.setW_IH(null);
			obj.setW_IM(null);
		}

		if (etDetHI.getText().toString().length() != 0) {
			String[] i1 = etDetHI.getText().toString().split(":");
			obj.setW_IH(i1[0]);
			obj.setW_IM(i1[1]);
		} else {
			obj.setW_IH(null);
			obj.setW_IM(null);
		}

		if (etDetHT.getText().toString().length() != 0) {
			String[] i1 = etDetHT.getText().toString().split(":");
			obj.setW_FH(i1[0]);
			obj.setW_FM(i1[1]);
		} else {
			obj.setW_FH(null);
			obj.setW_FM(null);
		}

		obj.setW_MOTI(etDetMotivo.getText().toString());

		if (obj.getRpta_web_id() > 0) {
			if (con.RespuestaCensoWebModificar(obj) > 0) {
				Intent ir_evaluacion_iii = new Intent(this,
						Evaluacion_III_Activity.class);
				Bundle datos = getIntent().getExtras();
				datos.putInt("rpta_web_id", 0);
				ir_evaluacion_iii.putExtras(datos);
				startActivity(ir_evaluacion_iii);

				Toast.makeText(this, "Se actualizo con exito",
						Toast.LENGTH_SHORT).show();

				finish();
			} else {
				Toast.makeText(this, "Error al actualizar", Toast.LENGTH_SHORT)
						.show();
			}
		} else {
			if (con.RespuestaCensoWebAdicionar(obj) > 0) {
				Intent ir_evaluacion_ii = new Intent(this,
						Evaluacion_III_Activity.class);
				ir_evaluacion_ii.putExtras(getIntent().getExtras());
				startActivity(ir_evaluacion_ii);

				Toast.makeText(this, "Se guardo con exito", Toast.LENGTH_SHORT)
						.show();

				finish();
			} else {
				Toast.makeText(this, "Error al guardar", Toast.LENGTH_SHORT)
						.show();
			}
		}
	}

	private void AbrirCalendar(String f, final EditText et, final int sw,
			final EditText et1) {
		final Calendar c = Calendar.getInstance();
		int dia = c.get(Calendar.DAY_OF_MONTH);
		int mes = c.get(Calendar.MONTH);
		if (f.length() != 0) {
			String[] valores = f.split("/");
			dia = Integer.parseInt(valores[0]);
			mes = Integer.parseInt(valores[1]) - 1;
		}
		DatePickerDialog fecha = new DatePickerDialog(this,
				new OnDateSetListener() {

					@Override
					public void onDateSet(DatePicker view, int year,
							int monthOfYear, int dayOfMonth) {
						c.set(Calendar.MONTH, monthOfYear);
						c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
						SimpleDateFormat sdf = new SimpleDateFormat("dd/MM",
								Locale.US);
						et.setText(sdf.format(c.getTime()));
					}
				}, 2014, mes, dia);
		fecha.setButton(DatePickerDialog.BUTTON_NEUTRAL, "Borrar",
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						et.setText("");
					}
				});
		fecha.show();
	}

	private void AbrirTime(String h, final EditText et, final int sw,
			final String h1) {

		final Calendar c = Calendar.getInstance();
		int horas = c.get(Calendar.HOUR_OF_DAY);
		int minutos = c.get(Calendar.MINUTE);
		if (h.length() != 0) {
			String valores[] = h.split(":");
			horas = Integer.parseInt(valores[0]);
			minutos = Integer.parseInt(valores[1]);
		}

		TimePickerDialog hora = new TimePickerDialog(this,
				new OnTimeSetListener() {

					@Override
					public void onTimeSet(TimePicker view, int hourOfDay,
							int minute) {
						c.set(Calendar.HOUR_OF_DAY, hourOfDay);
						c.set(Calendar.MINUTE, minute);
						SimpleDateFormat sdf = new SimpleDateFormat("HH:mm",
								Locale.US);
						et.setText(sdf.format(c.getTime()));
					}
				}, horas, minutos, true);

		hora.setButton(DatePickerDialog.BUTTON_NEUTRAL, "Borrar",
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						et.setText("");
					}
				});
		hora.show();
	}
}
